1. Field of the Invention
The present invention relates generally to providing printable reports, and more particularly to providing a remote printable report from an otherwise unprintable source.
2. Description of Related Art
Distributed network systems such as the Internet, wide area networks, and local area networks typically connect one or more dissimilar computers. A browser application program, such as Internet Explorer.RTM. offered by Microsoft Corporation, may be used as an interface for communicating over the network system. Individual computers on the distributed network may be running different operating systems, may have different microprocessors, or may have other differing characteristics that make it difficult to share executable programs across platforms. To provide programming flexibility in distributed network environments, cross platform, non-platform-specific programming languages, such as Java, have been developed. Program code, either compiled or uncompiled, is transmitted from a host computer to a client computer. The browser may be programmed to receive and interpret the cross platform code.
Cross Platform Applet Programs
In the case of Java, an applet may be compiled from source code into bytecodes and stored on a host computer. When requested by a client computer, the applet is transferred to the client computer. The client computer includes an interpreter that interprets the bytecodes of the applet and executes the commands in accordance with the particular processor architecture and operating environment of the client computer. The interpreter may be incorporated into the browser used as the interface between the host and client computers.
For security reasons, cross platform programing languages are not allowed to issue printer commands on the client computer. If such applets were allowed to issue printer commands, a malicious applet could take control of the printer on the client side and print a large volume of unwanted information. The downside of this security limitation is that is difficult, if not impossible, to provide custom reporting functions based on interaction between the host and client computers using a cross platform language. Typically, when a browser attempts to print a document containing data from an applet, the report is blank.
Methods to Provide Reports from Applets
Methods for printing data from applets have been devised. One such method is to perform a screen print of the browser screen. A disadvantage of a print screen method is that the report would be limited to the information currently displayed in the browser. Custom reports based on requests from the user of the client computer would be nearly impossible to construct as the hyper text markup language ("HTML") document provided by the host computer would be required to display all possible combinations of requests from the client computer user for custom reports. Moreover, the manner in which data is displayed on a screen is typically different than the manner in which data is presented in a printed report.
Another option is to detect that the browser is printing, intercept the graphical bit map image being transmitted to the printer, and superimpose the desired information over the bitmap. A disadvantage of the intercepting method is that the size of the printout is limited by the size of the bitmap being sent to the printer by the browser. If a user has requested a report including tree pages of data, and the bitmap being printed was only two pages in length, the report would be limited to two pages. Again, this method has limited flexibility, and therefore a lesser degree of customization is available for the printed report.
A third option for providing a printable document is to create a static HTML document on the host computer and direct the client computer to the Uniform Resource Locator ("URL") of the static report. A URL is a physical address where a document or other resource is located on a network. While this method allows customization, it suffers from system accounting and security problems. While the static URL is present on the host computer, users at connected client computers other than the user requesting the information might be able to access the information, either intentionally or inadvertently. Such a static HTML document on the host computer is therefore unsecured. Also, the host computer might receive hundreds or thousands of requests for custom reports in a short time frame. The task of accounting for the multitude of static HTML documents, associating the static documents with the proper client computer user, and removing the static documents after a specified period of time would prove unwieldy and burdensome for the host computer. A host computer receiving many requests could conceivably exhaust its storage resources, and as a result, would not be able to continue providing custom reports.
Thus, there is a need for a more optimal method for providing a printable report from data generated by an application program inhibited from directly accessing a printer.